
public class Vendedor extends Thread {
	private final int idVendedor;
	private boolean ocupado;
	private Cliente Cliente;
	private final PlanificadorClientes planificador;
	private Tiempo tiempo;
	private boolean prendido = true;
	
	public Vendedor(int idVendedor, PlanificadorClientes planificador, 
			Tiempo tiempo){
		this.idVendedor = idVendedor;
		this.planificador = planificador;
		this.tiempo = tiempo;
	}
	
	public int getIdVendedor() {
		return idVendedor;
	}
	
	public void setOcupado(boolean ocupado) {
		this.ocupado = ocupado;
	}
	
	public boolean isOcupado() {
		return ocupado;
	}
	
	public Cliente getCliente() {
		return Cliente;
	}

	public synchronized void parar() {
		this.prendido = false;
		//destranco el semaforo
		this.planificador.getCliente().release();
	}

	public PlanificadorClientes getPlanificador() {
		return planificador;
	}

	public void setCliente(Cliente Cliente) {
		this.Cliente = Cliente;
		this.ocupado = true;
	}

	public void run() {

		while(prendido){
			try{
				setCliente(this.planificador.AtenderCliente());
				Log.write("Vendedor "+ this.idVendedor + "atendiendo al Cliente:"
							+ this.Cliente.getId() );

				if (!this.Cliente.EsEspecial())
				{ 
					sleep(1000);
				} else {
					sleep(1500);
				}								
				Log.write("Vendedor "+ this.idVendedor + " termino Cliente: "
							+ this.Cliente.getId());
				Log.write("Tiempo de Fin de Venta del Cliente " + Cliente.getId() + ": " 
								+ (tiempo.getHora().getTime() - Cliente.getTiempoInicio().getTime())/1000 + " segundos.");
				this.Cliente = null;
			}catch (Exception e){
			}
		}
	}
}
